:root{font-family:Lato,Noto Sans JP,system-ui,sans-serif;font-synthesis:none;color-scheme:light}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden}button,select,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}.studio-shell{--bg: #f2f0eb;--panel: rgba(250, 249, 246, .94);--ink: #161713;--muted: #72736c;--faint: #a7a89f;--line: rgba(22, 23, 19, .13);--soft: rgba(22, 23, 19, .055);--inverse: #f8f7f3;position:relative;width:100%;height:100dvh;overflow:hidden;background:var(--bg);color:var(--ink);transition:background .5s ease,color .5s ease}.studio-shell.theme-dark{--bg: #080907;--panel: rgba(15, 16, 14, .94);--ink: #f3f1eb;--muted: #a09f98;--faint: #6f706a;--line: rgba(255, 255, 255, .13);--soft: rgba(255, 255, 255, .06);--inverse: #11120f;color-scheme:dark}.viewer-stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;transition:right .65s cubic-bezier(.22,1,.36,1)}.viewer-canvas{position:relative;width:100%;height:100%;background:#f2f0eb;transition:background .5s ease}.viewer-canvas.is-dark{background:#080907}.panel-open .viewer-stage{right:430px}.panel-open.review-mode .viewer-stage{right:min(50vw,640px)}.viewer-stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,transparent 35%,rgba(20,18,12,.08) 100%);mix-blend-mode:multiply}.theme-dark .viewer-stage:after{background:radial-gradient(circle at 50% 45%,transparent 32%,rgba(0,0,0,.38) 100%)}.brand-lockup{position:absolute;z-index:3;top:30px;left:34px;display:flex;flex-direction:column;pointer-events:none}.brand-lockup strong{font:600 27px/1 Cinzel,serif;letter-spacing:.13em}.brand-lockup span{margin-top:7px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.29em}.viewer-badge{position:absolute;z-index:3;top:32px;right:34px;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:99px;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.2em}.live-dot{width:6px;height:6px;border-radius:50%;background:#73a87a;box-shadow:0 0 0 4px #73a87a1f}.viewer-controls{position:absolute;z-index:3;left:34px;bottom:28px;display:flex;align-items:center;gap:18px}.viewer-controls button,.rotate-hint{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:99px;background:color-mix(in srgb,var(--bg) 76%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.17em}.viewer-controls button{cursor:pointer;transition:border-color .2s,color .2s,transform .2s}.viewer-controls button:hover{color:var(--ink);border-color:var(--ink);transform:translateY(-1px)}.rotate-hint{border:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}.language-switcher{display:flex;min-height:38px;overflow:hidden;border:1px solid var(--line);border-radius:99px;background:color-mix(in srgb,var(--bg) 76%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.viewer-controls .language-switcher button{min-height:36px;padding:0 10px;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:9px}.viewer-controls .language-switcher button.is-active{background:var(--ink);color:var(--inverse)}.viewer-controls .language-switcher button:hover{transform:none}.open-panel-button{position:absolute;z-index:5;top:28px;right:30px;display:flex;align-items:center;gap:10px;padding:13px 18px;border:1px solid var(--line);border-radius:99px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 12px 32px #0000001a;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.08em}.export-toast{position:absolute;z-index:6;left:50%;bottom:28px;padding:11px 16px;border:1px solid var(--line);border-radius:99px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 28px #0000001f;transform:translate(-50%);font-size:10px;font-weight:700;letter-spacing:.06em;animation:step-in .25s ease}.studio-panel{position:absolute;z-index:10;top:0;right:0;display:flex;flex-direction:column;width:430px;height:100%;border-left:1px solid var(--line);background:var(--panel);color:var(--ink);-webkit-backdrop-filter:blur(22px) saturate(115%);backdrop-filter:blur(22px) saturate(115%);box-shadow:-24px 0 60px #0e0d0a14;animation:panel-in .5s cubic-bezier(.22,1,.36,1)}.studio-panel.is-review{width:min(50vw,640px)}@keyframes panel-in{0%{transform:translate(24px);opacity:0}}.panel-header{display:flex;align-items:center;justify-content:space-between;min-height:94px;padding:22px 28px;border-bottom:1px solid var(--line)}.panel-header>div:first-child{display:flex;flex-direction:column;gap:5px}.panel-header span{color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.24em}.panel-header h1{margin:0;font:500 18px/1.2 "Noto Serif JP",Yu Mincho,serif;letter-spacing:.06em}.panel-tools{display:flex;gap:6px}.panel-tools button{display:grid;width:36px;height:36px;place-items:center;border:1px solid transparent;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s,border-color .2s}.panel-tools button:hover{border-color:var(--line);background:var(--soft)}.panel-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.panel-scroll::-webkit-scrollbar{width:5px}.panel-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px}.step-content{padding:28px 28px 52px;animation:step-in .4s ease both}@keyframes step-in{0%{transform:translateY(8px);opacity:0}}.discover-intro{padding:8px 0 30px;border-bottom:1px solid var(--line)}.intro-kicker{color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.24em}.discover-intro h2,.review-hero h2{margin:15px 0 14px;font:500 26px/1.6 "Noto Serif JP",Yu Mincho,serif;letter-spacing:.04em}.discover-intro p{margin:0;color:var(--muted);font-size:12px;line-height:1.9}.studio-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:24px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.studio-stats div{display:flex;flex-direction:column;gap:3px;padding:0 9px;border-right:1px solid var(--line)}.studio-stats div:first-child{padding-left:0}.studio-stats div:last-child{border-right:0}.studio-stats strong{font:500 17px/1 Cinzel,serif}.studio-stats span{color:var(--muted);font-size:8px}.studio-section{padding:27px 0;border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-heading h3{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em}.section-heading span{color:var(--faint);font-size:8px;font-weight:700;letter-spacing:.18em}.base-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.base-card{position:relative;display:grid;grid-template-columns:38px 1fr auto;align-items:center;min-height:74px;padding:13px;border:1px solid var(--line);background:transparent;text-align:left;cursor:pointer;transition:background .22s,border-color .22s,transform .22s}.base-card:first-child{grid-column:span 2}.base-card:hover{transform:translateY(-2px);border-color:var(--ink);background:var(--soft)}.base-monogram{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--muted);font:500 9px Cinzel,serif}.base-copy{display:flex;min-width:0;flex-direction:column;gap:5px}.base-copy strong{font:500 12px "Noto Serif JP",serif}.base-copy small{overflow:hidden;color:var(--muted);font-size:8px;white-space:nowrap;text-overflow:ellipsis}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preset-card{position:relative;min-height:138px;overflow:hidden;padding:13px;border:1px solid var(--line);background:var(--soft);text-align:left;cursor:pointer;transition:border-color .2s,transform .2s}.preset-card:hover{transform:translateY(-2px);border-color:var(--ink)}.preset-index{position:relative;z-index:2;color:var(--faint);font:500 8px Cinzel,serif;letter-spacing:.12em}.preset-orbit{--preset-accent: #d8c69c;position:absolute;top:15px;right:14px;width:56px;height:56px;border:1px solid color-mix(in srgb,var(--preset-accent) 75%,transparent);border-radius:48% 52% 45% 55%;box-shadow:inset 0 0 18px color-mix(in srgb,var(--preset-accent) 24%,transparent),0 0 24px color-mix(in srgb,var(--preset-accent) 14%,transparent);transform:rotate(28deg)}.preset-orbit:after{content:"";position:absolute;top:11px;right:11px;bottom:11px;left:11px;border:5px solid var(--preset-accent);border-radius:50%;filter:blur(.2px);opacity:.8}.preset-copy{position:absolute;z-index:2;right:13px;bottom:13px;left:13px;display:flex;flex-direction:column;gap:4px}.preset-copy strong{font:500 13px Cinzel,serif;letter-spacing:.05em}.preset-copy small{color:var(--muted);font-size:8px;line-height:1.5}.current-design-line{display:flex;align-items:flex-end;justify-content:space-between;padding:2px 0 22px;border-bottom:1px solid var(--line)}.current-design-line span{font:500 17px "Noto Serif JP",serif}.current-design-line strong{color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.06em}.metal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.metal-choice,.gem-choice{display:flex;align-items:center;border:1px solid var(--line);background:transparent;cursor:pointer;transition:border-color .2s,background .2s}.metal-choice{flex-direction:column;gap:9px;min-height:78px;justify-content:center;padding:8px 4px;font-size:8px}.metal-choice.is-active,.gem-choice.is-active{border-color:var(--ink);background:var(--soft)}.metal-swatch{width:29px;height:29px;border:1px solid rgba(0,0,0,.16);border-radius:50%;box-shadow:inset -6px -5px 10px #00000026,inset 5px 4px 8px #ffffff73}.gem-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.gem-choice{gap:9px;min-height:44px;padding:9px 10px;font-size:9px;text-align:left}.gem-swatch{width:15px;height:15px;flex:0 0 auto;border:1px solid var(--line);border-radius:50%;box-shadow:inset 3px 3px 5px #fff6,0 0 6px currentColor}.field-stack{display:flex;flex-direction:column;gap:17px}.select-field{position:relative;display:block}.select-field select{width:100%;min-height:47px;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 42px 0 13px;border:1px solid var(--line);border-radius:0;outline:none;background:var(--soft);color:var(--ink);cursor:pointer;font-size:11px}.select-field svg{position:absolute;top:50%;right:13px;transform:translateY(-50%);pointer-events:none;color:var(--muted)}.range-field{display:flex;flex-direction:column;gap:12px}.range-field>div{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.range-field strong{color:var(--ink);font:500 12px Cinzel,serif}input[type=range]{width:100%;height:2px;margin:4px 0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:5px;background:var(--line);accent-color:var(--ink);cursor:pointer}input[type=range]::-webkit-slider-thumb{width:15px;height:15px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:4px solid var(--panel);border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink)}.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.option-grid-two{grid-template-columns:1fr 1fr}.option-grid button{min-height:72px;padding:11px;border:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.option-grid button.is-active{border-color:var(--ink);background:var(--ink);color:var(--inverse)}.option-grid strong,.option-grid small{display:block}.option-grid strong{margin-bottom:6px;font-size:10px}.option-grid small{color:var(--muted);font-size:7px;line-height:1.55}.option-grid button.is-active small{color:color-mix(in srgb,var(--inverse) 65%,transparent)}.segmented-control,.profile-toggle{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;padding:1px;background:var(--line)}.segmented-control button,.profile-toggle button{min-height:40px;border:0;background:var(--panel);cursor:pointer;font-size:8px}.segmented-control button.is-active,.profile-toggle button.is-active{background:var(--ink);color:var(--inverse)}.profile-toggle{grid-template-columns:1fr 1fr;margin-bottom:12px}.profile-toggle button{display:flex;align-items:center;justify-content:center;gap:7px}.inline-field{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:12px;margin-top:14px;color:var(--muted);font-size:9px}.inline-field .select-field select{min-height:40px}.primary-action,.secondary-action{display:flex;width:100%;align-items:center;justify-content:center;border:0;text-decoration:none;cursor:pointer}.primary-action{min-height:56px;gap:12px;margin-top:30px;padding:0 18px;background:var(--ink);color:var(--inverse);font-size:11px;font-weight:700;letter-spacing:.1em;transition:transform .2s,opacity .2s}.primary-action:hover{transform:translateY(-2px);opacity:.9}.primary-action svg:last-child{margin-left:auto}.secondary-action{min-height:48px;gap:9px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:9px;font-weight:700;letter-spacing:.06em}.action-note{margin:12px 0 0;color:var(--faint);text-align:center;font-size:8px;line-height:1.6}.review-step{max-width:560px;margin:0 auto}.review-hero{padding:16px 0 28px;text-align:center}.review-mark{display:grid;width:48px;height:48px;margin:0 auto 15px;place-items:center;border:1px solid var(--line);border-radius:50%}.review-hero p{margin:0;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.25em}.review-hero h2{margin-bottom:0;font-size:25px}.atelier-note{padding:22px;border:1px solid var(--line);background:var(--soft)}.atelier-note>div:first-child{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.18em}.atelier-note p{margin:0 0 17px;font:500 15px/1.9 "Noto Serif JP",serif}.atelier-note small{display:block;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:9px;line-height:1.75}.loading-lines{display:flex!important;flex-direction:column;gap:9px!important}.loading-lines i{display:block;width:100%;height:8px;background:var(--line);animation:pulse 1.2s infinite}.loading-lines i:nth-child(2){width:87%}.loading-lines i:nth-child(3){width:62%}@keyframes pulse{50%{opacity:.35}}.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:22px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.spec-grid div{min-height:76px;padding:13px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.spec-grid span,.spec-grid strong{display:block}.spec-grid span{margin-bottom:8px;color:var(--faint);font-size:7px;letter-spacing:.1em}.spec-grid strong{font:500 11px/1.4 "Noto Serif JP",serif}.review-actions{display:flex;flex-direction:column;gap:8px;margin-top:24px}.review-actions .primary-action{margin-top:0}.panel-progress{display:flex;flex:0 0 17px;gap:3px;padding:0 28px 14px;background:var(--panel)}.panel-progress i{flex:1;height:2px;background:var(--line)}.panel-progress i.is-active{background:var(--ink)}@media(max-width:920px){.panel-open .viewer-stage,.panel-open.review-mode .viewer-stage{right:0;bottom:58dvh}.studio-panel,.studio-panel.is-review{top:auto;bottom:0;width:100%;height:58dvh;border-top:1px solid var(--line);border-left:0;box-shadow:0 -20px 50px #0e0d0a1a}.panel-header{min-height:68px;padding:14px 20px}.panel-header h1{font-size:15px}.panel-scroll{padding-bottom:env(safe-area-inset-bottom)}.step-content{padding:22px 20px 44px}.viewer-controls{left:20px;bottom:16px}.brand-lockup{top:20px;left:20px}.brand-lockup strong{font-size:22px}.viewer-badge{top:21px;right:20px}.open-panel-button{top:auto;right:20px;bottom:22px}.review-step{max-width:none}}@media(max-width:520px){.panel-open .viewer-stage,.panel-open.review-mode .viewer-stage{bottom:64dvh}.studio-panel,.studio-panel.is-review{height:64dvh}.rotate-hint span{display:none}.viewer-controls{gap:5px}.viewer-controls button,.rotate-hint{min-height:34px}.discover-intro h2,.review-hero h2{font-size:21px}.studio-stats strong{font-size:14px}.studio-stats span{font-size:7px}.option-grid{grid-template-columns:1fr}.option-grid-two{grid-template-columns:1fr 1fr}.option-grid button{min-height:58px}.spec-grid{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
