/* Wheel interaction primitives: site composition lives in design2.css. */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit}button,a,input,select,textarea{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus,#168c7e);outline-offset:4px}button{border:1px solid var(--line,#d5ddd9);border-radius:6px;background:var(--surface,#fff);color:inherit;padding:9px 12px}button:hover{filter:brightness(.96)}.primary,.actions button.primary{background:var(--accent,#117f72);color:var(--on-accent,#fff);border-color:var(--accent,#117f72)}[hidden]{display:none!important}.skip{position:absolute;top:-100px;left:15px;background:white;color:#152e2b;padding:12px;z-index:100}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.brand{font-size:22px;font-weight:850;letter-spacing:-1px;text-decoration:none;white-space:nowrap}.brand span{font-size:inherit!important;font-weight:inherit!important;letter-spacing:inherit!important}.header-actions{display:flex;gap:8px;align-items:center}nav a{text-decoration:none}main{min-width:0}.wheel-card,.wheel-side,.editor{min-width:0}.wheel-stage{position:relative;aspect-ratio:1;width:100%;margin:auto}.wheel-stage canvas{display:block;width:100%;height:100%;border-radius:50%;border:1px solid #24372c44}.spin-target{position:absolute;inset:0;width:100%;border-radius:50%;padding:0;background:transparent!important;border:0;z-index:2}.spin-invitation{position:absolute;left:40%;top:46%;width:20%;text-align:center;z-index:3;pointer-events:none;font-weight:800;font-size:12px}.hub{position:absolute;inset:39%;border-radius:50%;background:var(--hub,#fff);border:1px solid #ffffff66;overflow:hidden;pointer-events:none}.hub img{width:100%;height:100%;object-fit:cover}.pointer{position:absolute;left:calc(50% - 12px);top:-15px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:28px solid var(--pointer,#173e37);width:0;height:0;z-index:4}.wheel-name{min-width:0;width:100%;border:0;color:inherit;background:transparent;font-weight:650;padding:8px}.wheel-top{display:flex;align-items:center;gap:7px;margin-bottom:24px}.wheel-top button{flex-shrink:0;padding:7px 10px}.tabs{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:16px}.tabs button{padding:8px;font-size:12px;border-color:transparent}.tabs button.active{background:var(--accent);color:var(--on-accent,#fff)}.tabs button:first-child,.tabs button:nth-child(2){font-weight:750}.entry-tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.entry-tools button{font-size:11px;padding:7px;flex:1;white-space:nowrap}.entry-text{display:block;width:100%;min-height:210px;resize:vertical;padding:16px 16px 40px;line-height:1.9;border:1px solid var(--line);border-radius:6px;background:var(--field,#fff);color:inherit}.entry-box{position:relative}.emoji-button{position:absolute;bottom:10px;right:10px;padding:4px 9px}.editor-bottom{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin:9px 0}.editor-note{font-size:11px;color:var(--muted)}.badge{font-variant-numeric:tabular-nums}.picker-row{border:0;border-top:1px solid var(--line);padding:0;margin-top:14px}.picker-row summary{cursor:pointer;font-size:11px;letter-spacing:.08em;font-weight:750;padding:14px 0}.style-swatches{display:flex;overflow:auto;gap:8px;padding-bottom:12px}.style-swatches button{flex-shrink:0;border:0;font-size:10px;padding:4px}.palette-preview{display:block;width:32px;height:32px;border-radius:50%;margin:0 auto 6px}.preset-chips{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:12px}.preset-chips button,.preset-chips a{font-size:11px;padding:7px;border:1px solid var(--line);border-radius:5px;text-decoration:none}.editor-foot{display:flex;justify-content:space-between;gap:8px;margin-top:12px}.editor-foot button{font-size:12px}.hidden-editor .entry-content,.hidden-editor .entry-tools,.hidden-editor .editor-bottom,.hidden-editor .editor-note,.hidden-editor .picker-row{display:none}.results-panel{min-height:210px;max-height:370px;overflow:auto;padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--field,#fff);font-size:14px}.result-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.result-row small{color:var(--muted)}.weights-panel:empty{display:none}.weights-panel{max-height:260px;overflow:auto;background:var(--field,#fff);border:1px solid var(--line);margin-top:10px}.weight-row{display:flex;gap:7px;align-items:center;padding:7px 10px;font-size:12px}.weight-row span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis}.weight-row input{width:55px;padding:5px;background:var(--surface,#fff);color:inherit;border:1px solid var(--line)}.weight-row small{width:53px;text-align:right}.page-tools{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted)}.page-tools button{font-size:12px}#spin-all{background:var(--accent);color:var(--on-accent,#fff)}#status{font-size:13px;color:var(--muted);min-height:20px}.guide{line-height:1.8}.guide h2{line-height:1.2;margin-top:36px}.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.guide p,.guide li{color:var(--muted)}details:not(.picker-row){padding:14px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:700}footer{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}footer span{margin-left:auto}dialog{border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 100px #0004;padding:25px;width:min(700px,calc(100% - 28px));max-height:88vh;overflow:auto;background:var(--surface,#fff);color:var(--ink,#1a3030)}dialog::backdrop{background:#0d1428aa;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.modal-head h2{margin:0 0 18px;font-size:22px}.modal-head button{font-size:23px}.modal-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin:20px 0}.modal-tabs button{flex:1;border:0;border-bottom:3px solid transparent;border-radius:0}.modal-tabs button.active{border-color:var(--accent)}.setting-section h3{font-size:17px;margin:28px 0 14px}.setting-section label{display:block;margin:17px 0}.setting-section input[type=range]{width:80%;margin-right:12px;vertical-align:middle}.setting-section select,.setting-section input[type=text],.field{display:block;padding:12px;width:100%;margin:8px 0;background:var(--field,#f7f7f7);border:1px solid var(--line);color:inherit;border-radius:6px}.setting-section input[type=checkbox]{margin-right:8px}.palette{display:flex;flex-wrap:wrap;gap:8px}.palette input{width:50px;height:40px;border:0;padding:0}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.small{font-size:13px;color:var(--muted);line-height:1.6}.library-item{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.library-item button:first-child{flex:1;text-align:left}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.template-grid button{text-align:left;padding:18px}.template-grid small{display:block;margin-top:7px}.error{color:#ba2845}#winner-dialog{padding:0;max-width:540px}.winner-head{padding:13px 20px;background:var(--accent);color:var(--on-accent,#fff);display:flex;justify-content:space-between;align-items:center}.winner-head button{background:transparent;border:0;color:inherit;font-size:23px}#winner-content{padding:25px 30px;text-align:center}#winner-content h2{font-size:42px;overflow-wrap:anywhere}#winner-dialog .actions{padding:0 20px 20px}#undo-bar{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);padding:8px 15px;background:var(--accent);color:var(--on-accent,#fff);box-shadow:0 4px 20px #0003;z-index:20;max-width:calc(100% - 24px);border-radius:8px}.gallery-hero input{display:block;width:100%;padding:15px;border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:7px}.category-tabs{display:flex;gap:7px;flex-wrap:wrap}.category-tabs button{font-size:12px}.category-tabs button.active{background:var(--accent);color:var(--on-accent,#fff)}.template-section h2{display:flex;justify-content:space-between;gap:12px}.template-section h2 span{color:var(--muted);font-size:14px;font-weight:400}.template-card{text-decoration:none;color:inherit}.template-card h3{margin:8px 0;font-size:18px}.template-card p{font-size:13px;line-height:1.6;color:var(--muted)}.template-card small{font-size:10px;letter-spacing:.06em;color:var(--muted)}.preview-wheel{display:block;border-radius:50%;background:conic-gradient(#0f766e 0 17%,#74c8aa 17% 34%,#ddc999 34% 51%,#568ba3 51% 68%,#9982b6 68% 85%,#df98a8 85%);position:relative}.preview-wheel:after{content:'';position:absolute;inset:36%;border-radius:50%;background:var(--surface)}.multi#wheels{display:grid;grid-template-columns:1fr;gap:24px}.multi .wheel-card{min-height:0}.dark{filter:invert(.92) hue-rotate(180deg)}.dark canvas,.dark .brand,.dark .palette-preview{filter:invert(1) hue-rotate(180deg)}.celebrate{animation:celebrate .4s ease-out}@keyframes celebrate{from{transform:scale(.92)}to{transform:scale(1)}}@media(max-width:700px){.guide-grid{grid-template-columns:1fr;gap:8px}.template-grid{grid-template-columns:1fr}.modal-tabs button{font-size:12px;padding:10px 7px}.wheel-top{margin-bottom:20px}.entry-text{min-height:190px}footer span{margin-left:0}.library-item{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
